<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html,
        body {
            height: 80%;
        }

        .aside {
            width: 200px;
            height: 100%;
            float: left;
            background-color: #f66;
        }

        .main {
            overflow: hidden;
            height: 80%;
            background-color: #fcc;
        }
    </style>
</head>

<body>
    <!-- 虽然存在浮动的元素aslide，但main的左边依然会与包含块的左边相接触。 -->
    <!-- 
        在根据BFC特性第四条：BFC区域不会与float box重叠
        将main变成BFC即可：overflow:hidden或者其他
     -->
    <!-- 
        BFC不会影响外部，不被外部影响的解释：
        因为BFC内部的元素和外部的元素绝对不会互相影响，因此， 当BFC外部存在浮动时，它不应该影响BFC内部Box的布局，BFC会通过变窄，
        而不与浮动有重叠。同样的，当BFC内部有浮动时，为了不影响外部元素的布局，BFC计算高度时会包括浮动的高度。避免margin重叠也是这样的一个道理。
      -->
    <div class="aside"></div>
    <div class="main"></div>
</body>

</html>